﻿using SmartWMS.Common.ResponseOutput;
using SmartWMS.Domain.Base;
using SmartWMS.Domain.FinanceManage;
using SmartWMS.Server.FinanceManage.PaymentService.MeetDto;
using SmartWMS.Server.FinanceManage.PayTypeServices.Dto;

namespace SmartWMS.Server.FinanceManage.PaymentService
{
	/// <summary>
	/// 应付管理
	/// </summary>
	public interface IMeetService : ITransientServer
    {
        /// <summary>
        /// 添加应付信息
        /// </summary>
        /// <param name="dto">产品Dto</param>
        /// <returns></returns>
        Task<Response<bool>> AddMeetAsync(meetsDto dto);

        /// <summary>
        /// 加载支付类别
        /// </summary>
        /// <returns></returns>
        Task<Response<List<PayType>>> BindPayTypeAsync();

        /// <summary>
        /// 应付列表
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Response<List<meetsDto>>> ShowMeetAsync(queryDto dto);

        /// <summary>
        /// 删除应付信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Response<bool>> DeletePaymentAsync(KeyEntity id);

        /// <summary>
        /// 批量删除应付信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Response<bool>> BatchDelPaymentAsync(string id);

        /// <summary>
        /// 反填、查看应付信息
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Response<meetsDto> ReversePaymentAsync(meetsDto dto);

        /// <summary>
        /// 修改应付信息
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Response<bool>> UpdatePaymentAsync(meetsDto dto);

        /// <summary>
        /// 修改审核状态
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<Response<bool>> UpdateStateAsync(meetsDto dto);
    }
}
